Data networks, such as data centers, increasingly rely on Software-Defined Networks (SDN) to control data flows and switching behavior. An SDN, rather than putting all networking-related complexity into the individual switches, instead employs a set of relatively simple switches, managed by a central controller.
OpenFlow is a communication protocol utilized by some SDNs. In OpenFlow, the controller provides each switch with a set of “flow rules.” A flow rule consists primarily of a pattern that is matched against a flow key extracted from the fields within a packet. The flow rules specify a set of actions that should be carried out if a packet matches that rule. The flow rules also specify a set of counters that should be incremented if a packet matches the rule. OpenFlow specifies a packet counter and a byte counter for each rule.